package com.easymin.weixin.manager;

import com.easymin.weixin.controller.v4.ResultTransport;
import com.easymin.weixin.entity.freight.Order;

import java.util.Map;

public interface FreightManager {


  Map<String, Object> create(Long passengerId, String passengerName, String passengerPhone,
      Long companyId, String companyName, Long truckTypeId, String truckTypeName,
      String channelName, Long startTime, String waypoint, String memo, Boolean flitting,
      Boolean receipt, Boolean receivedPay, Double payMount, Double preMileagePrice, Long couponId,
      Double tip, Double preStartPrice, Double preMileage, Integer preRunTime,
      Double preRunTimePrice, Double budgetPay, String payDetail, String appKey);

  Map<String, Object> saveRoadLine(String waypoints, Long passengerId, String name, String appKey);

  Map<String, Object> deleteRoadLine(Long id, String appKey);

  Map<String, Object> findRoadLine(Long passengerId, String appKey);

  Map<String, Object> findByOrderId(Long orderId, String appKey);

  Order findOneOrder(Long orderId, String appKey);

  Map<String, Object> findOrders(Long passengerId, Integer page, Integer rows, String appKey);

  Map<String, Object> review(Long orderId, String content, Double score, String appKey);

  String hasten(Long orderId, String appKey);

  Map<String, Object> cancel(Long orderId, String cause, Boolean isDriver, String appKey);

  Map<String, Object> reach(Long orderId, Long waypointId, String appKey);

  Map<String, Object> jiedan(Long orderId, String appKey);

  Map<String, Object> grabOrder(Long orderId, Long employId, String employName, String employPhone,
      String employNo, Long employCompanyId, String employPhoto, Double employScore, String appKey);

  Map<String, Object> runOrder(Long orderId, String appKey);

  Map<String, Object> refuse(Long orderId, Long employId, String cause, String appKey);

  Map<String, Object> wait(Long orderId, String appKey);


  ResultTransport findOrderV4(Long orderId, String address, String appKey);

  ResultTransport queryTypeV4(Long companyId, String appKey);

  ResultTransport grabV4(Long orderId, Long employId, String employName, String employPhone,
      Long companyId, String employAccount, String employPhoto, Double employScore, String appKey);

  ResultTransport jiedanV4(Long orderId, String appKey);

  ResultTransport refuseV4(Long orderId, String cause, String appKey);

  ResultTransport runV4(Long orderId, String appKey);

  ResultTransport waitV4(Long orderId, String appKey);

  ResultTransport cancelV4(Long orderId, String cause, String appKey);

  ResultTransport reachV4(Long orderId, Long waypointId, String appKey);

  Long countNotPayAmounts(Long passengerId, String appKey);

  Long countRunning(Long passengerId, String appKey);

  Long countNotFinishedByPassenger(Long passengerId, String appKey);


}
